package com.sky.command;

import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

/**
 *
 * 监听 SHUTDOWN 命令的简要代码如下 ： 打开本地 8005 端口监听客户端 ，一旦有客户端 连接 ， 就尝试读取客户端的命令 ， 如果客户端发送的命令为 SHUTDOWN ,
 * 则跳出循环 ，让整 个主线程执行完毕 ， 也就意味着程序执行完关闭。 假如输入的命令并非为 SHUTDOWN , 则进去下一个循环 ， 等待下一个连接
 *
 * */
public class ShutdownCommand {



    public static void main(String[] args) {
        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket(8005, 1, InetAddress.getByName("localhost"));
            while (true) {
                Socket socket = null;
                StringBuilder command = new StringBuilder();
                InputStream stream = null;
                socket = serverSocket.accept();
                socket.setSoTimeout(10 * 1000);
                stream = socket.getInputStream();
                byte[] commands = new byte[8];
                stream.read(commands);
                for (byte b : commands) {
                    command.append((char) b);
                }
                System.out.println(command.toString());
                if (command.toString().equalsIgnoreCase("SHUTDOWN")) {
                    break;
                }
            }

        } catch (IOException e) {

            e.printStackTrace();
        }
    }
}